const mongoose = require("mongoose");

const typeTwoModel = mongoose.model("typeTwo");

module.exports = {
  //获取
  get: async ({ page, limit }) => {
    limit = ~~limit;
    const data = {};
    data.total = await typeTwoModel.countDocuments();
    data.maxPage = Math.ceil(data.total / limit);
    data.rows = await typeTwoModel
      .find()
      .populate(["typeOneId"])
      .sort({ _id: -1 })
      .skip((page - 1) * limit)
      .limit(limit)
      .exec();
    return data;
  },
  //添加
  add: async (typtTwo) => {
    return await typeTwoModel.create(typtTwo);
  },
  //品牌筛选
  search: async ({ typeTwo, typeOneId, page, limit }) => {
    limit = ~~limit;
    const data = {};
    data.total = await typeTwoModel.countDocuments();
    // 如果typeTwo && typeOneId都有值
    if (typeTwo && typeOneId) {
      data.rows = await typeTwoModel
        .find({ typeTwo: typeTwo, typeOneId: typeOneId })
        .populate(["typeOneId"])
        .sort({ _id: -1 })
        .skip((page - 1) * limit)
        .limit(limit)
        .exec();
    }
    // typeTwo有值 typeOneId没有值
    else if (typeTwo && !typeOneId) {
      data.rows = await typeTwoModel
        .find({ typeTwo: typeTwo })
        .populate(["typeOneId"])
        .sort({ _id: -1 })
        .skip((page - 1) * limit)
        .limit(limit)
        .exec();
    }
    // typeTwo没有值 typeOneId有值
    else if (!typeTwo && typeOneId) {
      data.rows = await typeTwoModel
        .find({ typeOneId: typeOneId })
        .populate(["typeOneId"])
        .sort({ _id: -1 })
        .skip((page - 1) * limit)
        .limit(limit)
        .exec();
    }

    return data;
  },
  //修改
  upDateOne: async ({ _id, typeTwo }) => {
    return await typeTwoModel.updateOne({ _id }, typeTwo);
  },
  //删除
  delOne: async ({ _id }) => {
    return await typeTwoModel.deleteOne({ _id });
  },
  getFromTypeOneId: async (typeOneId) => await typeTwoModel.find({ typeOneId }),
};
